package com.hyts.keygen.config;

/**
 * @project-name:coffice-toolbox
 * @package-name:com.hyts.keygen.config
 * @author:Libo/Alex
 * @create-date:2019-05-26 11:41
 * @copyright:libo-hyts-github
 * @email:libo2dev@aliyun.com
 * @description:此类主要用于: key properties的配置对象服务
 */
public interface KeyGenProperties {

    /**
     * 时间戳的位数，实际占41位，最高位保持为0，保证long值为正数
     */
    int TIMESTAMP_BIT_COUNT = 42;

    /**
     * 逻辑分片位数
     */
    int REGION_BIT_COUNT = 10;

    /**
     * 逻辑分片的最大数量
     */
    int REGION_MODEL_VAL = 1 << REGION_BIT_COUNT;

    /**
     * 序列位数
     */
    int SEQUENCE_BIT_COUNT = 12;

    /**
     * 总的位数
     */
    int TOTAL_BIT_COUNT = TIMESTAMP_BIT_COUNT + REGION_BIT_COUNT + SEQUENCE_BIT_COUNT;
}
